package com.op.pojo;

import com.op.core.pojo.YamlPropertySourceFactory;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

/**
 * ClassName： examAlgorithmParams
 * Date： 2021/10/27 11:05
 *
 * @author 孤焰
 * @version 1.0
 **/

@Data
@Component
@PropertySource(value = "classpath:exam-algorithm.yml", factory = YamlPropertySourceFactory.class)
public class ExamAlgorithmParams {
    // TODO 依赖注入问题，查询具体使用等问题
    /**
     * 完全匹配分数
     */
    @Value("${algorithm.tag.match}")
    private double tagMatch;
    /**
     * 不匹配标签个数 * not-match-sub
     */
    @Value("${algorithm.tag.not-match-sub}")
    private double tagNotMatchSub;
    /**
     * 完全不匹配分数
     */
    @Value("${algorithm.tag.no-match}")
    private double tagNoMatch;
    /**
     * 包含匹配标签的最小分数
     */
    @Value("${algorithm.tag.min-match}")
    private double tagMinMatch;
    /**
     * 难度匹配分数
     */
    @Value("${algorithm.difficulty.match}")
    private double difficultyMatch;
    /**
     * 难度不匹配分数
     */
    @Value("${algorithm.difficulty.not-match}")
    private double difficultyNotMatch;
    /**
     * 未知难度分数
     */
    @Value("${algorithm.difficulty.unknown}")
    private double difficultyUnknown;
    /**
     * 错误数据分数
     */
    @Value("${algorithm.data.mistake}")
    private double dataMistake;
    /**
     * 不确定数据分数
     */
    @Value("${algorithm.data.uncertain}")
    private double dataUncertain;
    /**
     * 正确数据分数
     */
    @Value("${algorithm.data.correct}")
    private double dataCorrect;
    /**
     * 无历史数据分数（与不确定分数一致）
     */
    @Value("${algorithm.data.no-data}")
    private double dataNoData;
    /**
     * 标签分数占比
     */
    @Value("${algorithm.all.tag-rate}")
    private double allTagRate;
    /**
     * 难度分数占比
     */
    @Value("${algorithm.all.difficulty-rate}")
    private double allDifficultyRate;
    /**
     * 历史数据占比
     */
    @Value("${algorithm.all.data-rate}")
    private double allDataRate;
}
